#include <vector>
#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
  /* code */
  // 输入和输出
  ifstream ifs("LemonadeLine.in");
  int n = 0;
  ifs >> n;

  vector<int> waitingCows;
  for (int i = 0; i < n; ++i) {
    int m = 0;
    ifs >> m;
    waitingCows.push_back(m);
  }

  // 从大到小排序 waitingCows
  sort(waitingCows.begin(), waitingCows.end(), greater<int>()/*排序的比较标准*/);

  // 计算最小排队数量
  int result = 0;
  for (int i = 0; i < waitingCows.size(); ++i) {
    // 什么时候会排队
    // i - 奶牛编号
    // waitingCows[i] - 编号为 i 的奶牛它愿意等待的牛的数量
    
    if (i <= waitingCows[i]) {
      // 排队
      ++result;
    }
    else {
      break;
    }
  }
  return 0;
}
